table of contents
STRTOK(3) | Podręcznik programisty Linuksa | STRTOK(3) |
NAZWA¶
strtok, strtok_r - wydzielanie słów z łańcuchów
SKŁADNIA¶
#include <string.h> char *strtok(char *s, const char *delim); char *strtok_r(char *s, const char *delim, char **ptrptr);
OPIS¶
`Słowo' jest to niepusty ciąg znaków, które nie występują w łańcuchu delim, poprzedzony znakiem \0 lub znakiem występującym w delim.
Funkcja strtok() służy do rozkładania ciągu znaków s na słowa. Pierwsze odwołanie do strtok() powinno posiadać s jako pierwszy argument. Następne wywołania powinny mieć jako pierwszy argument NULL. Każde wywołanie zwraca wskaźnik do następnego słowa lub NULL, gdy nie ma już więcej słów.
Jeśli słowo kończy się separatorem (delim), to ten kończący znak jest nadpisywany przez \0 i zapamiętywany jest wskaźnik do następnego znaku dla następnego wywołania strtok. Ciąg separatorów delim może być inny dla każdego wywołania.
Funkcja strtok_r() działa tak samo, jak strtok(), ale zamiast korzystać ze statycznego bufora, korzysta ze wskaźnika do przydzielonego przez użytkownika wskaźnika char*. Wskaźnik ten, parametr ptrptr, nie może zostać zmieniony podczas rozkładania jednego łańcucha.
USTERKI¶
Nigdy nie należy używać tej funkcji. Jeśli jest to jednak konieczne, należy zauważyć, że:
Tożsamość znaku separatora jest tracona.
Funkcje ta nie mogą być stosowana z ciągami stałymi.
Funkcja strtok() korzysta ze statycznego bufora, więc nie jest przystosowana do wielowątkowości. Jeśli ma to znaczenie, należy używać strtok_r().
WARTOŚĆ ZWRACANA¶
Funkcja strtok() zwraca wskaźnik do następnego słowa lub NULL, jeśli nie ma już więcej słów.
ZGODNE Z¶
- strtok()
- SVID 3, POSIX, BSD 4.3, ISO 9899
- strtok_r()
- POSIX.1c
ZOBACZ TAKŻE¶
index(3), memchr(3), rindex(3), strchr(3), strpbrk(3), strsep(3), strspn(3), strstr(3)
2000-02-13 | GNU |